package com.github.xiaolyuh.manager;

import com.github.xiaolyuh.entity.MqMessageModel;
import com.github.xiaolyuh.enums.AckStatusEnum;
import com.github.xiaolyuh.enums.MqMessageTypeEnum;
import com.google.common.collect.Lists;

import java.util.List;

public interface MessageStorage {

    /**
     *  存储消息
     * @param msgId
     * @param content
     * @param typeEnum
     */
    default void store(String siteCode,String msgId, String content, MqMessageTypeEnum typeEnum){
        return;
    }

    /**
     * 获取最新需要ack的消息
     * @param pageIndex
     * @param size
     * @return
     */
    default List<MqMessageModel> getNewestOfToBeAck(String siteCode, Integer pageIndex, Integer size){
        return Lists.newArrayListWithCapacity(0);
    }

    /**
     * 更新消息确认结果（失败or成功）
     * @param msgIds
     * @param ackStatusEnum
     * @return
     */
    default Integer updateAckResult(List<String> msgIds, AckStatusEnum ackStatusEnum){
        return 0;
    }

    /**
     * 叠加重试次数
     * @param msgIds
     * @return
     */
    default Integer incrRetriedTimes(List<String> msgIds){
        return 0;
    }
}
